package com.bilibili.mapper;

import com.bilibili.dto.CartoonCollectionCountDto;
import com.bilibili.entity.PicCartoon;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 漫画mapper层
 * Sandy
 * 2021.10.13 8:46pm
 */
public interface PicCartoonMapper {

    /**
     * @return 拿到所有的漫画
     */
    List<PicCartoon> getAllCartoon();

    /**
     * @param categoryId 品类id
     * @return 通过品类id拿到的漫画
     */
    List<PicCartoon> getCartoonByCategoryId(Integer categoryId);

    /**
     * @param name 漫画名字
     * @return 通过漫画名字找到的漫画
     */
    PicCartoon getCartoonByName(String name);

    /**
     * @param regionId 国家的id
     * @return 通过国家id拿到的漫画
     */
    List<PicCartoon> getCartoonByRegionId(Integer regionId);

    /**
     * @param ids 漫画id集合
     * @return 多个漫画
     */
    List<PicCartoon> getCartoonsByIds(@Param("ids") List<Integer> ids);

    /**
     * @param categoryId 题材id
     * @return 满足题材id的漫画id
     */
    List<Integer> getCartoonIdsByCategory(Integer categoryId);

    /**
     * @param search 搜索关键字
     * @return 通过模糊查询拿到的漫画
     */
    List<PicCartoon> getCartoonBySearch(String search);

    /**
     * @return 得到当前总共有多少给漫画
     */
    Integer getAllCartoonCount();

    /**
     * @param cartoonId 漫画id
     * @return 通过漫画id拿到的漫画
     */
    PicCartoon getCartoonById(Integer cartoonId);

    /**
     * @return 拿到所有漫画的id
     */
    List<Integer> getAllCartoonIds();

    /**
     * @param picCartoon 不含漫画id的实体类
     */
    void addCartoon(PicCartoon picCartoon);

    /**
     *
     * @return 拿到漫画的排行榜
     */
    List<CartoonCollectionCountDto> getCartoonCollectionRank();


}
